home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / plain / contrib / resume.tex < prev    next >
Encoding:
Text File  |  1992-08-26  |  13.2 KB  |  353 lines

  1. %%% RESUME Library                      Created by KMP@MC -- Feb/Mar 1980
  2. %%%    Converted for TEX from TEX80 by PARKER@OZ and MARC@OZ -- June 1985 
  3. %%%       Extended with NEWSECTION by MARKUS@OZ and PARKER@OZ -- Jan 1986 
  4. %%%
  5. %%% Please notify PARKER@OZ of any changes to this file.
  6. %%%
  7. %%% This is a library for creating cookbook resumes. Everything is here.
  8. %%% All you add are the lies about yourself.
  9. %%%
  10. %%% For a sample usage, see the file TEXLOCAL:RESUME-SAMPLE.TEX
  11. %%% See the file TEXLOCAL:RESUME.CONVERSION for information on
  12. %%%   converting your old TeX resume to run under the new system.
  13. %%%
  14. %%% Note:  Currently you must run TeX using this package by doing:
  15. %%%                @TEXTR <resume filename>
  16. %%%
  17. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  18. %%% If things go wrong using this file, here are some common problems.
  19. %%% If all else fails, send me (PARKER@OZ) mail and maybe we can fix it.
  20. %%%
  21. %%% Debugging help:
  22. %%%                ******THIS IS CRITICAL*******
  23. %%%  -- look at arglist, esp. for twocol, split, and newsection.  If there is a
  24. %%%     space between the args (such as #1 and #2), then there must be
  25. %%%     one in the source.
  26. %%%                ******END CRITICAL SECTION****
  27. %%%  -- if you get black vertical bars on your output, that means that
  28. %%%     a line was overfull.  Often the reason for this is the
  29. %%%     width of the page (pagewidth) is not big enough to contain
  30. %%%     both the section label and the value you specified for
  31. %%%     textwidth.  Adjust these numbers and all should work.
  32. %%%     Be sure that if you have a big label name, you use twoline
  33. %%%     to split it to two lines.
  34. %%%  -- if you get a vertical overfull box problem and you have a one-line
  35. %%%     objective, you will need to put \vskip .125in
  36. %%%     in the format section at the end of your resume just after the
  37. %%%     line \objective and just before the next one.  You may still
  38. %%%     get a warning from TeX about this box, but you will not have
  39. %%%     any crowding on your output.
  40. %%%     A possibly easier way of doing this is to make your objective
  41. %%%     look like this:
  42. %%%     \defsection{\objective}{\twoline {Employment}{Objective}}
  43. %%%         {\text {This is my short objective.}
  44. %%%         \text { }}
  45. %%%     This blank text box will fake TeX into giving you the space you
  46. %%%     need AND you won't get any warnings.
  47. %%%  -- If you get font problems, try using the defaults and running
  48. %%%     TeX using TEXTR, which uses the Times Roman font family.
  49. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  50.  
  51. %%% System implementor's message.
  52. \message{Please read the file TEXLOCAL:RESUME.TEX if you have problems.}
  53. \message{Note:  Currently there are bugs w.r.t. output to QMS.}
  54.  
  55. %%% Define system parameters 
  56.  
  57. \rm                     % Roman character set default type face
  58. \hsize=36pc             % Page width = 36 picas  ( 6 in )
  59. \vsize=45pc             % Page height = 45 picas ( 7-1/2 in )
  60. \nopagenumbers          % Flush page nos.
  61. \parindent=0pt          % Flush indenting of paragraphs.
  62.                         % Can be turned on locally if psyched to use it.
  63.  
  64. %% Used in old TeX, but not needed here.
  65. %% \output{\page}               % Just output page with no special headings, etc  
  66.  
  67. %% For now, at least as best I can tell from the point macros in TEXTR,
  68. %% small capitals aren't going to work, so just make them do something safe.
  69. \def\sc #1{\rm #1}
  70.  
  71.  
  72. %%% Define macros used internally
  73.  
  74.  
  75. \newdimen\rwid          %%   Width of the right box (text) is 28pc ( 4-2/3 in ) 
  76. \rwid=28pc
  77.  
  78. %%% These commands may be used to enter a given typeface.
  79. %%%
  80. %%%   \roman{... stuff to put in roman ...}
  81. %%%   \bold{... stuff to put in bold ...}
  82. %%%   \italic{... stuff to put in italic ...}
  83.  
  84. \def\roman#1{{\rm #1}}
  85. \def\bold#1{{\bf #1}}
  86. \def\italic#1{{\it #1}}
  87.  
  88.  
  89. %%% These macros are provided for users who wish to change the various
  90. %%% width and height parameters used by this package.
  91. %%%
  92. %%% \textwidth  size
  93. %%% \pagewidth  size
  94. %%% \pagelength size
  95.  
  96. \def\textwidth  #1{\rwid=#1}
  97. \def\pagewidth  #1{\hsize#1}
  98. \def\pagelength #1{\vsize#1}
  99.  
  100.  
  101. %%%  Added by PARKER 6/85 to facilitate columnarizing of courses.
  102. %%%
  103. %%%  Usage:  \twocol{Foo Chemistry}{Bar Mathematics}
  104. %%%
  105.  
  106. \def\twocol#1#2{\hbox to \rwid{\ourtextfont\hbox to 13.5pc{#1\hfill}
  107.     \hfill\hbox to 13.5pc{#2\hfill}}}
  108.  
  109. %%% Commands for setting fonts. 'fontcmd' refers to a normal TeX font
  110. %%%  affecting command such as \bf or \tenpoint.
  111. %%%
  112. %%% The font of text defined with \defname
  113. %%%   \defnamefont{fontcmd} sets the font to be used for your name
  114. %%%   \namefont changes to that font
  115. %%%
  116. %%% For varying the font of text in a \defsection
  117. %%%   \defheaderfont{fontcmd} sets the font to be used for section headers
  118. %%%   \headerfont changes to that font
  119. %%%
  120. %%% For varying the font of text in a \defaddress
  121. %%%   \defaddressfont{fontcmd} sets the font to be used in the address
  122. %%%   \addressfont changes to that font
  123. %%%
  124. %%% For varying the font of text in a \split
  125. %%%   \deflsplitfont{fontcmd} sets the font to be used on the left of a split
  126. %%%   \rsplitfont changes to that font
  127. %%%   \defrsplitfont{fontcmd} sets the font to be used on the right of a split
  128. %%%   \lsplitfont changes to that font
  129. %%%
  130. %%% For varying the font of text in a \text
  131. %%%   \defourtextfont{fontcmd} is the font to be used in the main text area
  132. %%%   \ourtextfont changes to that font
  133.  
  134. \def\namefont{\twelvepoint\bf}             % used to be HV14B
  135. \def\defnamefont#1{\def\namefont{#1}}
  136.  
  137. \def\headerfont{\twelvepoint\bf}           % used to be HV12B
  138. \def\defheaderfont#1{\def\headerfont{#1}}
  139.  
  140. \def\labelfont{\tenpoint\bf}
  141. \def\deflabelfont#1{\def\labelfont{#1}}
  142.  
  143. \def\lsplitfont{\tenpoint\bf}
  144. \def\deflsplitfont#1{\def\lsplitfont{#1}}
  145.  
  146. \def\rsplitfont{\ninepoint\rm}
  147. \def\defrsplitfont#1{\def\rsplitfont{#1}}
  148.  
  149. \def\ourtextfont{\tenpoint\rm}              % was 9pt, but was losing...RP 6/30/85 17:58:20
  150. \def\deftextfont#1{\def\ourtextfont{#1}}
  151.  
  152. \def\addressfont{\ninepoint\rm}
  153. \def\defaddressfont#1{\def\addressfont{#1}}
  154.  
  155.  
  156. %%% \skip  -- inserts a gap between lines
  157. %%% \space -- inserts whitespace between horizontal text blocks
  158.  
  159. \def\skip{\par\vskip 6pt}
  160. \def\space{\hfill}
  161.  
  162. %%% \defname{yournamegoeshere}
  163. %%%
  164. %%% You must declare the name to go at the top of the form using this
  165. %%% macro. 
  166.  
  167. \def\defname#1{\gdef\name{\hbox to \hsize{\namefont\hfill #1\hfill}\par
  168.                             \vskip 8pt}}
  169.  
  170. %%% \defaddress{\macroname}{addressname}{...specs...}
  171. %%%   specs may include
  172. %%%   \street{...street address...}     %% Required
  173. %%%   \apt{apartment or room info}      %% Optional
  174. %%%   \city{cityname, statename}        %% Required
  175. %%%   \zip{02139}                       %% Optional
  176. %%%   \phone{(617) 253-6765}            %% Optional
  177. %%%
  178. %%% This defines an address box. They must appear in the specified order.
  179. %%% If required specs are not given, results may be unpredictable.
  180. %%% Any number of addressses may be defined---if you think they'll fit.
  181. %%% The format for how they get laid out is specified in the \format 
  182. %%% command farther down.
  183.  
  184. \def\defaddress#1#2#3{
  185.     \gdef#1{{\def\stext{} \def\ctext{} \def\ztext{} \def\atext{}
  186.              \def\qtext{\hbox{ }} \def\ptext{\hbox{ }}
  187.              \def\street####1{\def\stext{####1}}
  188.              \def\apt####1{\def\atext{\hbox{####1} \def\qtext{}}}
  189.              \def\city####1{\def\ctext{####1}}
  190.              \def\zip####1{\def\ztext{####1}}
  191.              \def\phone####1{\def\ptext{####1}}
  192.              #3
  193.              \addressfont\vbox{\hbox{\bf #2 Address}  %%% used to have $\!$
  194.                                %%
  195.                                %% These next two lines used to be in the
  196.                                %% other order [street then apt] but, as
  197.                                %% pointed out by SR.WILSON@SPEECH, the
  198.                                %% US Postal Service recommend an ordering
  199.                                %% of information based on specificness.
  200.                                %% If this change upsets you, simply
  201.                                %% copy this \def into the beginning
  202.                                %% of your resume file (after the \input)
  203.                                %% and reverse them there. --RP 4/86
  204.                                \atext
  205.                                \hbox{\stext}
  206.                                \hbox{\ctext\quad \ztext}
  207.                                \hbox{\ptext}
  208.                                \qtext}}}}
  209.  
  210.  
  211. %%% \defsection{macroname}{sectionname}
  212. %%%     {main text of section}
  213. %%%
  214. %%% This macro allows you to define a macro named macroname which can be
  215. %%% called later and which will produce a box which looks like
  216. %%%
  217. %%%    sectionname ... text ........
  218. %%%                ... more text ...
  219. %%%                ... etc .........
  220. %%%
  221. %%% The text of section must be constructed in turn by the use of either
  222. %%% of two special operators.
  223. %%%
  224. %%% \text{...}          means that the text in the box is to be set as a 
  225. %%%                     normal paragraph
  226. %%%
  227. %%% \split{...} {...}   means that the two boxes are to be set on a single
  228. %%%                     line separated by whitespace. The first box is in
  229. %%%                     9pt bold by default, the second is 8pt roman.
  230. %%%
  231. %%% A sample section definition looks like:
  232. %%%
  233. %%% \defsection{\education} {Education}
  234. %%%   {\split{Massachusetts Institute of Technology} {Cambridge, MA}
  235. %%%    \text {Got a Bachelor of Science in Humanities. Didn't learn much.}
  236. %%%    \space
  237. %%%    \split{Foo High School}                       {NoWhere, USA}
  238. %%%    \text {I didn't really graduate from high school. I just kinda
  239. %%%           gave up after a while and took up kollidge.}}
  240. %%%
  241.  
  242. \def\defsection#1#2 #3
  243.    {\gdef#1{\headerfont
  244.             \setbox1=\hbox{\hsize \rwid\vbox{#3\par\vskip 10pt}}
  245.             \hbox to \hsize{\vbox to 1\ht1{\hbox{#2}\vfil}
  246.                             \hfil
  247.                             \box1}}}
  248.  
  249. %%% NEWSECTION -- allows you to produce output with year labels, for instance,
  250. %%%    to the right of each of your jobs.  An alternative to putting the
  251. %%%    year information inside the job description.               
  252. %%% 
  253. %%% This NEWSECTION by Markus Toth (MARKUS@OZ).
  254. %%%
  255. %%% Example of what the source code should look like:
  256. %%%
  257. %%%\defnewsection{\work}{Experience}
  258. %%%   {\skip
  259. %%%    \seclayer{\twoline {1985 to} {Present}}
  260. %%%       {\split{Company A, Inc.}              {Nowhere, MA}
  261. %%%        \text {As director of food consumption....}}
  262. %%%    \skip
  263. %%%    \seclayer{\twoline {1982 to} {1985}}
  264. %%%       {\split{Company B, Ltd.}              {Somewhere, MA}
  265. %%%        \text {Associate Research Scientist.  ....}}
  266. %%%    \vskip 0pt}}   %% THIS MUST BE HERE
  267. %%%
  268. %%% And here is the output produced by that:
  269. %%%
  270. %%% Experience
  271. %%%
  272. %%% 1985 to          Company A, Inc                Nowhere, MA
  273. %%% Present          As director of food consumption...
  274. %%%
  275. %%% 1982 to          Company B, Ltd.               Somewhere, MA
  276. %%% 1985             Associate Research Scientist.  ....
  277. %%%
  278. %%% Note that the \vskip 0pt at the end of \defnewsection is CRITICAL.
  279. %%% Yes, this is a bug, and no we aren't going to fix it now.
  280. %%% And, yes, you are welcome to fix it iff you know how.
  281.  
  282. \def\defnewsection#1#2 #3
  283.    {\gdef#1{\headerfont
  284.             \hbox to \hsize{#2 \hfil}
  285.             #3}}
  286.  
  287. %%% SECLAYER -- each layer (i.e. each job) needs to be in one of these.
  288. %%%
  289. %%% Note that it uses LABELFONT for the labels.  You can define labelfont
  290. %%% with \deflabelfont{\tenpoint\bf} or whatever.
  291.  
  292. \def\seclayer#1 #2
  293.    {\labelfont
  294.     \setbox1=\hbox{\hsize \rwid\vbox{#2\par\vskip 10pt}}
  295.     \hbox to \hsize{\vbox to 1\ht1{\hbox{#1}\vfil}
  296.                     \hfil
  297.                     \box1}}
  298.  
  299.  
  300. %%% \oneline{text}               - a no-op
  301. %%% \twoline{text}{text}         - creates a two-line box
  302. %%% \threeline{text}{text}{text} - creates a three-line box
  303. %%%
  304. %%% These are for trivially creating one, two, or three line boxes for the
  305. %%% label field in the main body.
  306.  
  307. \def\oneline#1{#1}
  308. \def\twoline#1#2{\vbox{\hbox{#1}\hbox{#2}}}
  309. \def\threeline#1#2#3{\vbox{\hbox{#1}\hbox{#2}\hbox{#3}}}
  310.  
  311.  
  312.  
  313. %%% \format{addresslist}
  314. %%%        {bodylist}
  315. %%%
  316. %%% This is what defines how things get laid out. Just list out your 
  317. %%% address names (separate them with a \space) and your section names 
  318. %%% in the order you want them to appear. eg,
  319. %%%
  320. %%%  \format{\home\space\work\space\permanent}
  321. %%%         {\objective\skip\education\skip\background}
  322. %%%
  323. %%% This will define a \copy and that will make it get output. You may
  324. %%% change fonts, etc, between doing \copy's and the changes will affect
  325. %%% subsequent \copy commands. You'll need to supply your own \bye at 
  326. %%% the end of the file.
  327.  
  328. \def\format #1 #2{
  329.  \count0=0
  330.  \gdef\copy{\global\advance\count0 by 1
  331.  {\def\split####1 ####2{\hbox to\rwid{\lsplitfont ####1\hfill\rsplitfont ####2}}
  332.   \def\text####1{\hbox {\hsize \rwid \vbox{\ourtextfont ####1}}}
  333.   \hbox{$ $}\par\vfill\name\vfill\hbox to \hsize{#1}\par\vfill
  334.   #2\par\vfill\eject}}}
  335.  
  336. %% \def\format #1 #2{
  337. %% \setcount0 0
  338. %% \gdef\copy{\advcount0
  339. %% {\def\split####1 ####2{\hbox to \rwid{\lsplitfont ####1\hfill\rsplitfont ####2}}
  340. %%  \def\text####1{\hbox par \rwid{\textfont ####1}}
  341. %%  \hbox{$ $}\par\vfill\name\vfill\hbox to size {#1}\par\vfill
  342. %%  #2\par\vfill\eject}}}
  343.  
  344.  
  345. % Local Modes:
  346. % MM AutoTeX Mode:1,m.mTex Mode"e m(m.m Load Library)TeX'w
  347. % Mode:AutoTeX
  348. % Comment Column:40
  349. % Comment Start:%
  350. % Atom Word Mode:0
  351. % Auto Fill Mode:0
  352. % End:
  353.